package persistencia.operaciones;

import java.util.List;

import persistencia.DBManager;
import recital.Estadio;
import recital.Recital;
import artistas.ArtistaMusical;
import artistas.Musico;
import espectaculos.Festival;
import espectaculos.Gira;

public class MostrarBase implements Runnable{

	private DBManager db;
	public MostrarBase(){
		this.db = DBManager.getInstance();
	}
	
	@Override
	public void run() {
		this.mostrar("Musicos", Musico.class);
		this.mostrar("Artistas Musicales", ArtistaMusical.class);
		this.mostrar("Recitales", Recital.class);
		this.mostrar("Estadios", Estadio.class);
		this.mostrar("Festivales", Festival.class);
		this.mostrar("Giras", Gira.class);
		
	}
	
	private void mostrar(String unTitulo, final Class<? extends Object> clazz){
		this.imprimirTitulo(unTitulo);
		@SuppressWarnings("unchecked")
		List<Object> datos = (List<Object>) this.db.getAll(clazz);
		for (Object obj : datos) {
			System.out.println(" - " + obj);
		}
		System.out.println("Cantidad de DATOS: " + datos.size());
		System.out.println();
	}
	
	private void imprimirTitulo(String unTitulo){
		String subrrallado = "-------------------------------------------";
		String espacios = "";
		for (int i = 0; i < (subrrallado.length()/2) - (unTitulo.length()/2); i++) {
			espacios += " ";
		}
		System.out.println(subrrallado);
		System.out.println(espacios + unTitulo);
		System.out.println(subrrallado);
	}
}
